// 1.1 获取裁剪区域的 DOM 元素
let $image = $('#image')
// 1.2 配置选项
const options = {
    // 纵横比
    aspectRatio: 1,
    // 指定预览区域
    preview: '.img-preview'
}

// 1.3 创建裁剪区域
$image.cropper(options)

//   需求2:点击按钮,选择图片
$('#chooseImageBtn').on('click', function () {
    $('#chooseImageInp').click();
});

// 需求3:  选择图片,同步裁剪区域
$('#chooseImageInp').on('change', function () {
    // console.log(this);
    // 获取文件对象
    let file = this.files[0];
    if (file === undefined) {
        return layui.layer.msg('请选择图片')
    }
    // 在内存中生成一个虚拟路径
    let newImgURL = URL.createObjectURL(file);
    // console.log(newImgURL);
    // 先销毁旧的裁剪区域，再重新设置图片路径，之后再创建新的裁剪区域
    $image
        .cropper('destroy')      // 销毁旧的裁剪区域
        .attr('src', newImgURL)  // 重新设置图片路径
        .cropper(options)        // 重新初始化裁剪区域 


    /* //    原生js方法
      let file = this.files[0];
      let fd = new FileReader();
      fd.readAsDataURL(file);
      fd.onload = function (e) {
          $image.cropper('destroy');
          $('#image').attr('src', fd.result);
      } */
})

// 需求4: 上传头像
$('#uploadBtn').on('click', function () {
    // console.dir(this);
    let file = $('#chooseImageInp')[0].files[0];
    if (file === undefined) {
        return layui.layer.msg('请选择图片')
    }
    let dataURL = $image
        .cropper('getCroppedCanvas', { // 创建一个 Canvas 画布
            width: 100,
            height: 100
        })
        .toDataURL('image/png')       // 将 Canvas 画布上的内容，转化为 base64 格式的字符串
    // console.log(dataURL);

    // 调用接口,发送请求
    axios({
        method: 'post',
        url: '/my/update/avatar',
        data: 'avatar=' + encodeURIComponent(dataURL),
    }).then(function (res) {
        if (res.data.status !== 0) {
            return layui.layer.msg(res.data.message)
        };
        layui.layer.msg('修改成功');
        window.parent.getUserInfo();
    })
})
